package ru.payment.wm;

/**
 * User: sergey
 * Date: 22.04.2009
 * Time: 14:39:21
 *
 * состояние оплаты счета
 *
 */
public enum InvoiceState {

    /** код неопределен */
    UNKNOWN(-1, "неизвестно"),
    /** не оплачен */
    NOT_PAID(0, "не оплачен"),
    /** оплачен по протекции */
    PAID_ON_PROTECTION(1, "оплачен по протекции"),
    /** 2 - оплачен окончательно */
    PAID_FINALLY(2, "оплачен окончательно или без протекции"),
    /** 3 - отказан */
    DENIED(3, "отказан");

    private int value;
    private String description;

    InvoiceState(int v, String d) {
      value = v;
      description = d;
    }

    public int getValue() {
      return value;
    }

    public void setValue(int value) {
      this.value = value;
    }

    public String getDescription() {
      return description;
    }

    public void setDescription(String description) {
      this.description = description;
    }

    @Override
    public String toString() {
      return description;
    }

    public static InvoiceState getByValue(int v) {
      switch(v) {
        case 0: return NOT_PAID;
        case 1: return PAID_ON_PROTECTION;
        case 2: return PAID_FINALLY;
        case 3: return DENIED;
      }
      return UNKNOWN;
    }

}
